Skip to content

Conversation

@oncsr
Copy link
Contributor

@oncsr oncsr commented Feb 13, 2025

🧷 문제 링크

https://www.acmicpc.net/problem/31404

🧭 풀이 시간

66분

👀 체감 난이도

✏️ 문제 설명

  • 로봇 청소기가 $H \times W$ 크기의 격자를 청소하려 한다.
  • 처음에 각 칸에는 모두 먼지가 있다.
  • 격자와 크기가 동일한 표 A, B가 주어진다.
  • 아래 프로세스를 반복했을 때, 청소기가 몇 번 이동하는지 구해보자.
  1. 현재 칸 (x,y)에 먼지가 있다면 없앤다.
  2. 먼지가 있었다면 A[x][y]만큼 방향을 돌리고, 없었다면 B[x][y]만큼 방향을 돌린다.
  3. 한 칸 전진한다.

🔍 풀이 방법

  • 격자를 벗어나지 않는 한, 이미 답이 구해졌어도 이동을 계속 한다.
  • 마지막으로 먼지를 치우고 이동했던 순간의 이동 횟수를 따로 저장한다.

⏳ 회고

  • 처음엔 4차원 BFS로 시도했었다.
  • 각 상태는 (x좌표, y좌표, 직전에 바라봤던 방향, 현재 바라보고 있는 방향)으로 관리해주었다.
  • 이 BFS에 대한 반례는 아래 케이스에서 찾을 수 있었다.
5 3
2 2 3
033
110
100
033
000
000
000
000
000
000
  • BFS로는 도저히 생각이 안나서 그냥 깡 시뮬레이션을 1억번 돌리고 답을 구했다.

@oncsr oncsr added success 👍 해설을 보지 않고 풀었을 때 timeout ⌚ 목표 시간보다 오래걸렸을 때 labels Feb 13, 2025
@ShinHeeEul ShinHeeEul merged commit f537fae into main Feb 13, 2025
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

success 👍 해설을 보지 않고 풀었을 때 timeout ⌚ 목표 시간보다 오래걸렸을 때

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants